/*Iniciamos las funciones*/

var tamOriginal = window.innerWidth;
var form;

window.addEventListener('load', init, false);
window.onresize = ajustarTexto;

function init() {
	ajustarTexto();
	asignar();

}

function asignar() {
	form = document.getElementsByTagName("form")[0];
	form.onsubmit = function() {
		comprobar();
		return false;
	}
}

function comprobar() {/*Para comprobar que los campos no se quedan vacios*/

	var contador = 0;
	var par = document.getElementsByTagName("p");

	if (vacio(form.name) || form.name.value.length < 3) {
		contador++;
		if (!tieneHijo(par[0])) {

			crear(0, "Introduce tu nombre");

		} else {
			$(".posicion0").fadeIn();
		}

	}
	form.name.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion0").fadeOut();
			return false;
		}

	}
	if (vacio(form.surname) || form.surname.value.length < 3) {
		contador++;
		if (!tieneHijo(par[1])) {

			crear(1, "Introduce tu apellido");

		}else{
			$(".posicion1").fadeIn();
		}
	}

	form.surname.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion1").fadeOut();
			return false;
		}

	}
	if (vacio(form.mail)) {
		contador++;

		if (!tieneHijo(par[2])) {

			crear(2, "Introduce tu email");
		}else{
			$(".posicion2").fadeIn();
		}

	} else {
		var patron = /^(\w)([.]*[_]*[-]*\w)+@([a-z])+([.]*[a-z])*[.]([a-z]{2,3})$/;

		if (!patron.test(form.mail.value)) {
			contador++;
			if (!tieneHijo(par[2])) {
				crear(2, "El mail no es válido");

			}else{
				$(".posicion2").fadeIn();
			}
		}
	}
	form.mail.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion2").fadeOut();
			return false;
		}

	}
	if (vacio(form.user) || form.user.value.length < 3 || form.user.value.length > 10) {
		contador++;
		if (!tieneHijo(par[3])) {

			crear(3, "Introduce un nombre de usuario");

		}else{
			$(".posicion3").fadeIn();
		}
	}
	form.user.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion3").fadeOut();
			return false;
		}

	}
	if (vacio(form.password)) {
		contador++;
		if (!tieneHijo(par[4])) {

			crear(4, "Introduce una contaseña valida");

		}else{
			$(".posicion4").fadeIn();
		}
	}
	form.password.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion4").fadeOut();
			return false;
		}

	}
	if (vacio(form.password2)) {
		contador++;
		if (!tieneHijo(par[5])) {
			crear(5, "Repite tu contraseña por favor");

		}else{
			$(".posicion5").fadeIn();
		}
	} else if (form.password.value == form.password2.value) {
		var expresion = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$/;
		if (!expresion.test(form.password.value)) {
			contador++;
			if (!tieneHijo(par[5])) {
				crear(5, "La contraseña no es segura");
			}else{
				$(".posicion5").fadeIn();
			}
		}

	}
	form.password2.onkeyup = function() {
		if (!vacio(form.name)) {
			$(".posicion5").fadeOut();
			return false;
		}

	}
	if (contador == 0) {

		enviar();
		return false;
	}

	function crear(posicion, msg) {
		var p = par[posicion];
		var span = document.createElement("span");
		var elemento = document.createTextNode(msg);
		span.appendChild(elemento);
		span.className = "aviso posicion" + posicion;
		p.appendChild(span);
	}

}

function vacio(caja) {
	var respuesta = false;
	if (caja.value == "") {
		respuesta = true;
	}
	return respuesta;
}

function tieneHijo(parrafo) {
	var respuesta = false;
	if ($(parrafo).find("span").length) {

		respuesta = true;
	}
	return respuesta;

}

function enviar() {

	var datosForm = {
		name : form.name.value,
		surname : form.surname.value,
		mail : form.mail.value,
		user : form.user.value,
		password : form.password.value,
		password2 : form.password2.value
	}

	ejecutarAjax_registro("../php/registro.php", validacionOk, datosForm);
}

function validacionOk(JsonObject) {
	var datos = JSON.parse(JsonObject);
	var validado = datos[0];

	if (validado) {
	    msg = "Registro correcto."
		new Messi(msg, {title: 'OK', titleClass: 'success', height: '75px', buttons: [{id:0, label: 'Cerrar', val: 'X'}], callback: function(){window.location = "./index.html";}});
	} else {
		var msg = "";
		for (var i = 1; i < datos.length; i++) {
			if (datos[i] != " ") {
				msg += datos[i] + '\n';
			}

		}
		new Messi(msg, {title: 'Error', titleClass: 'anim error', height: '75px'});
		//ha dado algun error, debe mostrarse un mensaje con los errores y volver al registro, a ver si se consigue que no se hayan borrado los datos
	}
}

function ajustarTexto() {
	var tamActual = window.innerWidth;
	var proporcion = (tamActual / tamOriginal) * 100;
	document.body.style.fontSize = proporcion + "%";
}

